package com.gt.deceive.utils;

import com.gt.deceive.entity.ReceiveAddress;
import org.apache.commons.lang3.StringUtils;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 生成收货人姓名，电话，下单时间，收货地址
 */
public class UserInfoUtil {

    /**
     * 生成收货人姓名
     * @param num 生成个数
     * @return
     */
    public static List<String> createUserName(int num){
        if(num < 1){
            return null;
        }
        List<String> list = new ArrayList<>();
        for(int i=0;i< num;i++){
            list.add(CreateNameUtil.getChineseName());
        }
        return list;
    }

    /**
     * 生成收货人电话
     * @param num 生成个数
     * @return
     */
    public static List<String> createUserTel(int num){
        if(num < 1){
            return null;
        }
        List<String> list = new ArrayList<>();
        for(int i=0;i < num;i++){
            list.add(CreateTelUtil.getTel());
        }
        return list;
    }

    /**
     * 生成下单时间（开始时间和结束时间在同一天)
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param num       生成个数
     * @return
     */
    public static List<Long> createUserOrderTime(String startTime, String endTime, int num){
        if(StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime) || num < 10){
            return null;
        }
        List<Long> list = CreateTimeUtil.randomDate(startTime, endTime, num);
        return list;
    }

    /**
     * 生成收货人地址
     * @param address  水站地址
     * @param radius   收货人地址距离水站半径（米)
     * @param num      生成个数
     * @return
     */
    public static List<ReceiveAddress> createUserAdd(String address, String radius, int num){
        if(StringUtils.isBlank(address) || StringUtils.isBlank(radius) || Integer.parseInt(radius) < 1 || num < 1){
            return null;
        }
        List<ReceiveAddress> list = CreateAddUtil.addToAddList(address, radius, num);
        return list;
    }

    public static void main(String[] args) {
//        List<String> name = createUserName(100);
//        List<String> tel = createUserTel(100);
//        List<ReceiveAddress> receiveAddressList = createUserAdd("北京市北京市朝阳区国美第一城", "5000", 100);
//        List<Long> timeList = createUserOrderTime("2018-11-08 09:00:00", "2018-11-08 18:00:00", 100);
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        for(int i=0;i<100;i++){
//            System.out.println("下单人姓名:"+name.get(i));
//            System.out.println("下单人电话:"+tel.get(i));
//            System.out.println("下单人地址:"+receiveAddressList.get(i).getProvinceName()+receiveAddressList.get(i).getCityName()+receiveAddressList.get(i).getDistrictName()+receiveAddressList.get(i).getAddress());
//            System.out.println("下单人时间:"+sdf.format(timeList.get(i)));
//            System.out.println("==========================");
//        }
    }
}
